package com.etc.service;

import com.etc.entity.Books;
import com.github.pagehelper.PageInfo;
import com.etc.entity.Bookstype;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BooksService {

    /**
     * 删除商品
     * @param bId 商品id
     * @return true 删除成功 false 删除失败
     */
    boolean deleteByPrimaryKey(Integer bId);

    /**
     * 新增商品
     * @param record 商品信息
     * @return true 增加成功 false 增加失败
     */
    boolean insert(Books record);

    /**
     * 模糊查询
     * @param bName 商品名称关键字
     * @return 查询到的商品信息
     */
    PageInfo<Books> selectByPrimaryKey(@Param("bName") String bName, @Param("pageNum")int pageNum, @Param("size") int size);

    /**
     * 修改商品
     * @param record 修改的信息
     * @return true 修改成功 false 修改失败
     */
    PageInfo<Books> updateByPrimaryKey(@Param("record") Books record,@Param("pageNum")int pageNum, @Param("size") int size);

    /**
     * 查询所有书籍
     * @author gyx
     * @return
     */
    List<Books> getAllBooks();

    /**
     * 按id查询单本书籍详情
     * @param bId
     * @return
     */
    Books getById(Integer bId);

    /**
     * 按书籍类型显示
     * @param btName
     * @param pageNum
     * @param size
     * @return
     */
    List<Books> getByType(String btName,int pageNum, int size);

    /**
     * 按书名或作者模糊查询+分类
     * @param bName
     * @param bAuthor
     * @param pageNum
     * @param size
     * @return
     */
    List<Books> getByLike(String bName,String bAuthor,String btName,int pageNum, int size);

    /**
     * 查询所有图书类型
     * @return
     */
    List<Bookstype> getAllType();
}
